Practical and Efficient Lock-Free Garbage Collection Based on Reference Counting
نویسندگان
چکیده
We present an efficient and practical lock-free implementation of a garbage collection scheme based on reference counting aimed for the use with arbitrary lock-free dynamic data structures. The scheme guarantees the safety of local as well as global references, supports arbitrary memory reuse, uses atomic primitives which are available in modern computer systems and provides an upper bound on the memory prevented for reuse. To the best of our knowledge, this is the first lock-free algorithm that provides all of these properties. Experimental results indicate significant performance improvements for lock-free data structures that require strong garbage collection.
منابع مشابه
Practical Distributed Garbage Collection for Networks with Synchronous Clocks and Message Delay
Distributed garbage collection over a message passage network i s discussed in this paper. Traditionally, this can be done b y reference counting, which is fast but cannot reclaim cyclic structures or b y graph traversal, e.g. mark-and-sweep or time stamping, which is capable of reclaiming cyclic structures but is slow. We propose a combined scheme which is fast in reclaiming acyclic garbage an...
متن کاملHeap Garbage Collection with Reference Counting
In algorithms based on reference counting, a garbage-collection decision has to be made whenever a pointer x→ y is about to be destroyed. At this time, the node y may become dead even if y’s reference count is not zero. This is because y may belong to a piece of cyclic garbage. Some aggressive collection algorithms will put y on the list of potential garbage regardless of y’s reference count. L...
متن کاملBrief Announcement: Dynamic-Sized Lock-Free Data Structures∗
Almost all previous dynamic-sized lock-free data structures are either unable to free memory to the memory allocator when it is no longer required, or require special system or hardware support. In the only exception we are aware of, a single thread failure can prevent further memory reclamation (see full paper for reference). We recently posed a problem — the Repeat Offenders Problem (ROP) — a...
متن کاملGarbage Collection in JyNI - How to bridge Mark/Sweep and Reference Counting GC
Jython is a Java-based Python implementation and the most seamless way to integrate Python and Java. It achieves high efficiency by compiling Python code to Java bytecode and thus letting Java’s JIT optimize it – an approach that enables Python code to call Java functions or to subclass Java classes. It enables Python code to leverage Java’s multithreading features and utilizes Java’s built-in ...
متن کاملBrief Announcement: ParMarkSplit: A Parallel Mark-Split Garbage Collector Based on a Lock-Free Skip-List
This brief announcement provides a high level overview of a parallel mark-split garbage collector. Our parallel design introduces and makes use of an efficient concurrency control mechanism based on a lock-free skip-list design for handling the list of free memory intervals. We have implemented the parallel mark-split garbage collector in OpenJDK HotSpot as a parallel and concurrent garbage col...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2005